/*
 * @Description:自定义正则验证
 * @Author: gaoyunpeng
 * @Date: 2022-01-21 10:34:27
 * @LastEditors: gaoyunpeng
 */

/**
 * @param {string} path
 * @returns {Boolean}
 */
export function isExternal(path) {
  return /^(https?:|mailto:|tel:)/.test(path)
}

/**
 * @param {string} str
 * @returns {Boolean}
 */
export function validUsername(str) {
  const validMap = ['admin', 'editor']
  return validMap.indexOf(str.trim()) >= 0
}
// 自定义验证必须为数字
export function amount(value) {
  // 金额，只允许保留两位小数
  return /^(\|\+)?\d+(\.\d+)?$/.test(value)
}

// 自定义校验手机号
export function mobile(value) {
  return /^1[23456789]\d{9}$/.test(value)
}
// 自定义校验邮箱
export function email(value) {
  return /^\w+((-\w+)|(\.\w+))*\[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/.test(
    value
  )
}

// 判断复杂密码
export function pwd(value) {
  return /^(?![a-z0-9]*$)(?![a-zA-Z]*$)[0-9a-zA-Z]{6}$/.test(value)
}
/**
 * 验证日期格式
 */
export function date(value) {
  return !/Invalid|NaN/.test(new Date(value).toString())
}
/**
 * 中文
 */
export function chinese(value) {
  const reg = /^[\u4e00-\u9fa5]+$/gi
  return reg.test(value)
}

/**
 * 验证是否包含某个值
 */
export function contains(value, param) {
  return value.indexOf(param) >= 0
}
/**
 * 判断是否为空
 */
export function empty(value) {
  switch (typeof value) {
    case 'undefined':
      return true
    case 'string':
      if (value.replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g, '').length === 0) {
        return true
      }
      break
    case 'boolean':
      if (!value) return true
      break
    case 'number':
      if (value === 0 || isNaN(value)) return true
      break
    case 'object':
      if (value === null || value.length === 0) return true
      for (var i in value) {
        return false
      }
      return true
  }
  return false
}
